A volte è necessario convertire una tabella a croce (pivot) in una tabella piatta. Questa procedura si chiama " raddrizzamento dei dati "
Il programma LibreOffice Calc non dispone di una funzionalità standard per convertire le tabelle pivot in " Piatto ", ma puoi scrivere tu stesso la procedura corrispondente. Vediamo come farlo.
Diamo un'occhiata all'immagine qui sotto per comprendere più chiaramente l'essenza del problema. A sinistra abbiamo una tabella sotto forma di matrice (tabella pivot) e a destra - una tabella normale con colonne (tabella piatta):
Quando espandi una tabella, decomprimi la coppia attributo-valore che è l'intersezione delle colonne nella tabella a matrice e le riorienti nelle colonne appiattite nella tabella piatta:
Apri il menu Tools - Macros - Edit Macros..., seleziona Module1 e copia il seguente testo nel modulo:
Sub UnPivotTable
' moonexcel.com.ua
Dim oBook As Object
Dim oActiveSheet As Object
Dim oSelRange As Object
Dim oNewSheet As Object
Dim i As Long
Dim iTopLabelRowCount As Integer
Dim iSideLabelColCount As Integer
oBook = ThisComponent
oActiveSheet = oBook.CurrentController.ActiveSheet
oSelRange = oBook.CurrentSelection
' Aggiungi un nuovo foglio
oBook.Sheets.insertNewByName("UnPivoted Table",0)
oNewSheet = oBook.Sheets(0)
' Determina la dimensione delle intestazioni
iTopLabelRowCount = InputBox(" Quante righe nell'intestazione superiore? ")
iSideLabelColCount = InputBox(" Quante colonne nell'intestazione laterale? ")
i = 0
For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count
For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count
For j = 1 To iSideLabelColCount
oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula
Next j
For k = 1 To iTopLabelRowCount
oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula
Next k
oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula
i = i + 1
Next c
Next r
End Sub
Quindi chiudi Macro Editor e torna al foglio di lavoro in LibreOffice Calc. Seleziona l'intera tabella con le intestazioni in alto e a sinistra ed esegui la nostra nuova macro tramite il menu Tools - Macros - Run Macro...
La macro inserirà un nuovo foglio con nome nella cartella di lavoro
Puoi anche usare l'utility "Tabella pivot (Unpivot)" installando l'estensione YLC_Utilities.oxt .
Successivamente, questa utilità sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.